home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
ms_dos
/
data
/
wtmr
/
wtmr_b.mac
< prev
next >
Wrap
Text File
|
1995-02-13
|
25KB
|
1,031 lines
#=========================================================================
#WTERM マクロプログラム ビギナー会員専用 WTMR_B.MAC V10.5
#=========================================================================
START: #WTMR.MACから。
CALL(LOOP0)
SEND("\R")
CALL(LOOP0)
LOGOPEN("MAR")
GETCRTS(M$,"15") #ビギナー会員の場合には表示行数が多い。
GETCRTS(N$,"16") #未読確認のための変数格納。
C$="C\R"
WAIT("")
SEND("ESC OFF\R")
CALL(LOOP0)
SEND("NAP OFF\R")
CALL(LOOP0)
#=========================================================================
DIR00: #発言ルーチン。
PRINTCR("□書き込み指定ファイル捜査中です□")
GETMACROD(I$) #I$=D:\WT\MACRO\
CAT(I$,"_PAD_.PAD") #I$=D:\WT\MACRO\_PAD_.PAD
IFFILEY(I$) #I$=D:\WT\MACRO\_PAD_.PADがある場合。
DELFILE(I$) #D:\WT\MACRO\_PAD_.PADを削除。
GETTXUPD(D$) #D$=G:\UP_TXT\
CAT(G$,D$,Y) #末尾\カットのためのダミーY追加。G$=G:\WT\UP_TXT\Y。
CHANGE(G$,"\Y"," >") #G$=G:\UP_TXT >
CAT(E$,"DIR ",G$) #E$=DIR G:\WT\UP_TXT >
CAT(E$,D$) #E$=DIR G:\WT\UP_TXT >G:\WT\UP_TXT\
CAT(E$,"DIR.TXT") #E$=DIR G:\WT\UP_TXT >G:\WT\UP_TXT\DIR.TXT
CHILD(E$) #E$を実行。DIR.TXT作成。既にあれば,上書き。
PICKWORD(F$,E$,">") #E$を>で区切る。E$=G:\WT\UP_TXT\DIR.TXT
DELAYM(1000) #同期調整。
G$=6 #読み込み行初期値-1
DIR:
WOPEN("_PAD_.PAD") #MACROディレクトリに,送信指定ファイル作成。
WCLOSE #いったん閉じる。WAPPENDのため。
FOPEN(E$) #DIR.TXTオープン。
DIR1:
A$=""
ADD(G$,G$,"1") #読み込み行+1
CAT(A$,G$,"") #A$=G$
FILER(E$,A$) #DIR.TXTからA行目読み込み。A$に格納。
JUMPSRCHY(A$,"ファイ",NEX) #ファイル末。NEXへ。
JUMPSRCHY(A$,"<DIR>",DIR1) #ディレクトリ行。DIR1へ戻る。
JUMPSRCHN(A$,"RES",DIR1) #拡張子がRESでないファイル行。DIR1へ戻る。
JUMPSRCHY(A$,"は",DIR1) #説明行。DIR1へ戻る。
FCLOSE #DIR.TXT閉じる。
WAPPEND("_PAD_.PAD") #追加書き込みファイルオープン。
PICKWORD(V$,A$," ") #A$= EXE 8,234 95-01-01 1:00 など。空白で区切。
JUMPSRCHN(A$,"RES",DIR1) #A$にRESがなければ,DIR1へ。あれば下の処理へ。
WRITE(V$) #_PAD_.PADに,V$=12_45 などを書き込み。
WCLOSE #_PAD_.PAD閉じる。
FOPEN(E$) #DIR.TXTオープン。
VCLEAR("AV") #A$,V$初期化。
GOTO(DIR1) #DIR1へ戻る。
NEX: #DIR.TXT読み込み終了後処理。
FCLOSE #DIR.TXT閉じる。
DELFILE(E$) #DIR.TXT削除。E$不要。
FOPEN("_PAD_.PAD") #_PAD_.PAD読み込みオープン。
UPT: #_PAD_.PAD指定内容による分岐ルーチン。
FREAD(A$,UPTEND) #A$に_PAD_.PADから一行読み込み。EOFならば,終了処理。
GETTXUPD(D$) #D$=G:\UP_TXT\
CAT(D$,A$) #D$=G:\WT\UP_TXT\12_505
CAT(D$,".RES") #D$=G:\WT\UP_TXT\12_505.RES
ROPEN(D$) #アップ文書ファイルオープン。
RREAD(K$) #K$=TITLE(アップ文書ファイル一行目)
LEFT(K$,"30") #K$=TITLE,30文字以上をカット。
JUMPSRCHY(A$,"MAR0",ML) #MAIL指定(MAR0****.RES)の場合,MLへ分岐。
#-------------------------------------------------------------------------
BS: #会議室発言の場合。
H$="_" #区切り文字。
VCLEAR("FS")
PICKWORD(J$,A$,H$) #J$=12,A$=505 or W など。
CAT(S$,J$,"") #S$=J$=12
CAT(S$,")") #現在会議室番号取得ルーチン。
CAT(F$,"D",S$) #F$=D12)
JUMPSRCHY(Z$,F$,BBSWW) #Z$は,プロンプトの行を格納している。居場所の確認。
VCLEAR("FHLSZ")
SEND(J$) #J$=12(会議室番号)送信。
SEND("\R")
CALL(LOOP0) #PROMPT待ち。
GETCRTS(H$,"2") #入れない会議室の場合は,RETRYへ分岐。
JUMPSRCHY(H$,"◆",RETRY)
BBSWW: #発言が,レスか,オリジナルかの分岐。
JUMPE(A$,"W",BS_0) #J$=Wの場合(オリジナル発言),BS_0へ。
CAT(L$,"RES ",A$) #L$=RES 505
VSWAP(L$,A$) #L$とA$を交換。A$=RES 505
BS_0:
SEND(A$) #レス先番号 or W 送信。
SEND("\R")
CALL(LOOP0)
GETCRTS(H$,"2") #書き込めない会議室の場合は,RETRYへ分岐。
JUMPSRCHY(H$,"◆",RETRY)
CONVERT(OFF) #制御文字非変換。
SEND(K$) #TITLE送信。
CONVERT(ON)
SEND("\R")
CALL(LOOP0)
GETCRTS(H$,"1") #TITLE入力ミスの確認。
T$="BBSW1" #この場合は,TITMIS0で使用する居場所フラグ。
JUMPSRCHN(H$,"確認",TITMIS0)
BBSW1:
SEND("\R") #TITLE確認。
T$="BBS0" #この場合は,EOFで使用する居場所フラグ。
CALL(LOOP0)
GOTO(SEND) #汎用送信ループへ。
BBS0: #/Eがない場合,/E送信後処理。EOFから。
CALL(LOOP0)
SEND("\R") #修正確認。
CALL(LOOP0)
SEND("\R") #登録確認。
BBS0_: #登録確認後。EOF_から。会議室書き込み最終処理。
RCLOSE #送信済ファイル閉じる。
CALL(LOOP0)
V$="namv -a " #NAMV.EXEを使用。
CAT(V$,D$) #V$=namv -a G:\WT\UP_TXT\12_505.RES
Q$=" $(TxtUpD)DONE\" #Q$はMAILルーチンでも使用。
CAT(V$,Q$)
CHILD(V$) #送信済ファイル移動。
VCLEAR("AJL")
GOTO(DAT__) #CHAT判断ルーチン,後_PAD_.RAD読み込み分岐へ。
#=========================================================================
ML: #A$=MAR0****。MAIL先ID。
JUMPSRCHY(Z$,"MAIL",MAIL1) #Z$はプロンプト行を格納している。MAIL MODEか否か確認。
Z$="" #Z$初期化。
SEND("M\R") #MAIL MODEへ。
CALL(LOOP0)
MAIL1:
SEND("W\R") #書き込み送信。
CALL(LOOP0)
CONVERT(OFF)
SEND(K$) #TITLE送信。TITLEはUPTでカット済。
CONVERT(ON)
SEND("\R")
CALL(LOOP0)
GETCRTS(H$,"1") #TITLE確認。ミスがあれば,TITMIS0へ。
T$="MAIL01" #TITMIS0で使用する居場所フラグ。
JUMPSRCHN(H$,"確認",TITMIS0)
MAIL01:
SEND("\R") #TITLE修正確認。
T$="MAIL0" #NEXT_で使用する居場所フラグ。
CALL(LOOP0)
GOTO(SEND) #汎用送信ループへ。
MAIL0:
CALL(LOOP0) #/E送信後。
SEND("\R") #修正確認。
MAIL0_: #修正確認後,から。
CALL(LOOP0)
SEND(A$) #A$は送信先ID,UPTで設定。宛先送信。
SEND("\R")
U$="MAIL000" #IDMISの場合の居場所フラグ。
STIMEOUT(2)
SWITCH
CASE("◆") #エラーメッセージの有無確認。
GOTO(IDMIS)
END
CALL(LOOP0)
SEND("\R") #宛先登録確認。
MAIL000: #送信済ファイル移動処理。MAIL送信最終処理。
CALL(LOOP0)
RCLOSE #送信済ファイル閉じる。
V$="namv -a "
Q$=" $(TxtUpD)DONE\"
CAT(V$,D$) #V$=namv -a G:\WT\UP_TXT\MAR*****.RES
CAT(V$,Q$)
CHILD(V$) #送信済ファイル移動。
VCLEAR("LJF") #J$,L$は会議室番号,レス先番号等で使用。
GOTO(DAT__) #CHAT判断ルーチン,後_PAD_.PAD読み込み分岐へ。
#=========================================================================
SEND: #汎用文書送信用ルーチン。EOFとセット。
RREAD(F$,EOF) #発言ファイル読込。続きがなければ終了処理へ。
JUMPE(F$,"/E",NEXT_) #/Eがある場合,NEXT_へ分岐。
CONVERT(OFF)
SEND(F$) #発言ファイル内容一行送信。
CONVERT(ON)
SEND("\R")
GOTO(SEND) #SENDへ戻る。
EOF: #アップ文書終了処理。
SEND("/E\R") #/Eがないので,/E送信。
GOTO(T$) #指定されたT$のラベルへ。
#=========================================================================
TITMIS0: #会議室,メール,共用タイトルミス処理ルーチン。
SEND("Title つけ忘れです m(_._)m\R")
WAIT(":")
GOTO(T$) #T$は居場所フラグ。
#=========================================================================
DAT__: #UPT処理内CHAT判断ルーチン。
VSWITCH(R$) #LOOP0でR$を設定。
CASE("C") #フラグがCの場合。
CALL(CHAT) #CHATへ。
VCLEAR("R") #R$を初期化。
GOTO(UPT) #_PAD_.PADファイル指定読み込みルーチンへ。
ELSE #フラグがCでない場合。
GOTO(UPT) #_PAD_.PAD読み込み分岐へ。
END
#=========================================================================
UPTEND: #UPTから,_PAD_.PADのEOFを受けて,終了処理。
FCLOSE #_PAD_.PADを閉じる。
DELFILE(I$) #_PAD_.PADを削除。
GOTO(AAA)
#=========================================================================
NEXT_: #マルチポスト指定ルーチン。SENDから,/Eがある場合。
SEND(F$) #F$=/E,/E送信。
SEND("\R")
CALL(LOOP0)
SEND("\R") #修正確認。
JUMPSRCHY(T$,"MAIL",MLO) #MAIL送信の場合,宛先送信処理,後NEXT__へ。
CALL(LOOP0)
SEND("\R") #BBS登録確認。
NEXT__: #/Eの後の続きの判断分岐。
RREAD(F$,EOF_) #ファイル末ならば終了処理へ。続きがあれば,書き込み処理。
CALL(LOOP0)
SEND("W\R") #継続書き込みコマンド送信。
LEFT(F$,"30") #TITEL読込。長さ調整。
CALL(LOOP0)
CONVERT("OFF")
SEND(F$) #TITLE送信。
CONVERT("ON")
SEND("\R")
CALL(LOOP0)
SEND("\R") #TITLE確認。
GOTO(SEND) #汎用送信ループへ戻る。
EOF_: #登録確認後の終了処理。
JUMPSRCHY(T$,"MAIL",MAIL000)
#MAILの場合。送信済ファイル移動処理へ。
GOTO(BBS0_) #会議室の場合。送信済ファイル移動処理へ。
MLO: #NEXT_から,宛先送信処理。
CALL(LOOP0)
SEND(A$) #宛先送信。
SEND("\R")
U$="NEXT__" #IDMISの場合の移動先フラグ。
STIMEOUT(2)
SWITCH
CASE("◆") #エラーメッセージの有無確認。
GOTO(IDMIS)
END
CALL(LOOP0)
SEND("\R") #宛先登録確認。
GOTO(NEXT__) #続き存否確認処理へ。
IDMIS: #居場所フラグにはU$を使用。
CALL(LOOP0)
PRINTCR("")
PRINTCR("□送信先ID or ハンドル名にミスがありましたので,貴方宛に送信します□")
SEND(W$) #W$=USER ID or ハンドル名。
SEND("\R")
CALL(LOOP0)
SEND("\R") #宛先登録確認。
GOTO(U$) #U$は居場所フラグ。指定先へ。
#=========================================================================
AAA: #PAD指定処理開始。
S$="MAR.PAD" #MAR.PADは行動指定ファイル。
E$="/" #MAR.PAD内区切り文字。
O$="_" #MAR.PAD内区切り文字。
P$="." #MAR.PAD内区切り文字。
GETTXUPD(I$) #I$=G:\WT\UP_TXT\
CAT(B$,I$,S$) #B$=G:\WT\UP_TXT\MAR.PAD。PAD処理中はB$は固定。
ROPEN(B$,READ0) #MAR.PADがなければ,READ0へ。
RREAD(A$) #MAR.PADから一行,A$へ読み込み。
VSWAP(A$,X$) #A$とX$を交換。
IFE(X$,"") #X$はMAR.PADの一行目,一行伝言。ほぼ固定。
X$="/E" #一行伝言が改行のみの場合は,/Eとする。
CAT(I$,"MAR.WRK") #I$=G:\WT\UP_TXT\MAR.WRK
WOPEN(I$) #MAR.WRK作成。
WCLOSE #WAPPENDのために,いったん閉じる。
WAPPEND(I$) #MAR.WRKオープン。
WRITE("") #一行伝言部分を削除して空白を書き込む。
WCLOSE #MAR.WRKを閉じる。
#=========================================================================
DAT_: #>に戻って,CHATに入るかどうかを決めるルーチン。
D$=""
VSWITCH(R$) #LOOP0でR$を設定。
CASE("C") #CHATメッセージがあった場合,R$=C。
CALL(CHAT) #CHATへ。
VCLEAR("R") #CHATから復帰。
GOTO(DAT1) #MAR.PADファイル指定読み込みルーチンへ。
ELSE #R$がCでない場合。
GOTO(DAT1)
END
#=========================================================================
DAT1: #MAR.PAD内指定読み取りルーチン。
RREAD(A$) #MAR.PADから二行目以降をA$へ読み込み。
JUMPE(A$,"",DAT1) #空白のみの行の場合,DAT1へ戻る。
J$=A$ #J$はWAPPEND書き込み用変数。
U$=A$
LEFT(U$,"1")
JUMPE(U$,"#",DAT1) #「#」で始まるコメント行の場合,DAT1へ戻る。
VSWITCH(A$)
CASE("SEL") #MENU SELECTER へ。
U$="READ" #U$は移動先フラグ。
GOTO(DAT3)
CASE("OFF") #自動一行伝言書き込み終了へ。
U$="READ2"
GOTO(DAT3)
CASE("BYE") #手動一行伝言書き込み終了へ。
U$="READ1"
GOTO(DAT3)
CASE("PAS") #未読処理をせずに,MENU SELECTERへ。
U$="SELECT0"
GOTO(DAT3)
ELSE
GOTO(DAT2)
END
#-------------------------------------------------------------------------
DAT2: #「/」指定の分岐。
JUMPE(A$,"DLN/",DLN) #最新DLリスト取得指定の場合。
PICKWORD(D$,A$,E$) #/で区切った内容を分離。
JUMPE(D$,"B",DAT1) #旧版指定の場合。
JUMPE(D$,"M",DAT1) #旧版指定の場合。
JUMPE(D$,"C",DAT1) #ハンドル名変更指定。
JUMPE(D$,"R",DAT1) #BC読み指定。
JUMPE(D$,"W",DAT1) #BC書き指定。
JUMPE(D$,"U",DAT1) #UPLOAD指定。
JUMPE(D$,"D",DOWN) #DWONLOAD指定。
JUMPE(D$,"P",PRO) #プロフィール取得指定。
JUMPE(D$,"L",DL_) #DLリスト取得指定の場合。
JUMPE(D$,"K",KES) #発言削除指定の場合。
JUMPE(A$,"",DO) #直接コマンド入力指定の場合。
#-------------------------------------------------------------------------
DAT3:
WAPPEND(I$) #追加書き込みに,MAR.WRKをオープン。
WRITE(J$) #MAR.PAD内容をMAR.WRKに書き込む。
DAT4: #読み込み行以下をMAR.WRKに書き込むルーチン。
RREAD(J$,DAT5) #MAR.PADから読み込み。EOFならば,DAT5へ。
WRITE(J$) #MAR.WRKに書き込み。
GOTO(DAT4)
DAT5: #MAR.PAD最終処理ルーチン。
WCLOSE #MAR.WRKを閉じる。
RCLOSE #MAR.PADを閉じる。
A$=""
CAT(A$,"DEL ",B$) #A$=DEL G:\WT\UP_TXT\MAR.PAD
CHILD(A$) #MAR.PAD削除。
DELAYM(1500) #同期調整。
CHANGE(B$,"MAR.PAD","MAR.WRK")
A$=""
CAT(A$,"REN ",B$) #A$=REN G:\WT\UP_TXT\MAR.WRK
CAT(A$," MAR.PAD") #A$=REN G:\WT\UP_TXT\MAR.WRK MAR.PAD
CHILD(A$) #MAR.WRKを,MAR.PADに改名。
DELAYM(1500) #同期調整。
GOTO(U$) #DAT1で格納した移動先へ。
#=========================================================================
DOWN: #DOWNLOAD指定。
PICKWORD(D$,A$,E$) #D$はDL番号。A$=23/***.LZH
PICKWORD(H$,A$,E$) #H$はDOWNLOADデータ番号。A$はデータ名。
JUMPE(A$,"",DAT_) #指定ミスの場合。
JUMPE(D$,"",DAT_)
JUMPE(H$,"",DAT_)
U$=A$
SEND("DL\R") #DLへ。
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(DAT_) #DLに入れない場合。
END
CALL(LOOP0)
SEND(D$) #DL番号送信。
SEND("\R")
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(DWMIS) #指定DLに入れない場合。
END
CALL(LOOP0)
SEND("3\R") #DOWNLOAD選択。
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(DWMIS) #DOWNLOAD不可能の場合。
END
CALL(LOOP0)
SEND(H$) #DOWNLOADデータ番号送信。
SEND("\R")
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(DWMIS1) #DOWNLOAD番号エラー。
END
CALL(LOOP0)
SEND("1\R") #確認。
CALL(LOOP0)
SEND("1\R") #受信方法選択。
DELAYM(4000) #同期調整。
DOWNLOAD(4,U$,ERROR) #F-Xmodemによる受信。
DELAYM(500) #同期調整。
SEND("\R") #同期調整のための改行送信。
CALL(LOOP0)
SEND("T\R") #DLを抜ける。
VCLEAR("HU")
CALL(LOOP0)
GOTO(DAT_)
#-------------------------------------------------------------------------
DWMIS1: #データ番号ミスの場合。
CALL(LOOP0)
SEND("\R") #リターン送信で,DOWNLOADを抜ける。
DWMIS: #DLに入れない場合。DWONLOAD不可能の場合。
CALL(LOOP0)
SEND("T\R") #メインプロンプトへ。
CALL(LOOP0)
VCLEAR("HU")
GOTO(DAT_)
#=========================================================================
READ0: #MAR.PADが存在しない場合,一行伝言を設定。
X$="また来るねぇ~ (^^)/゚"
READ:
U$="SELECT0"
GOTO(R1)
READ1:
U$="OFF4"
GOTO(R1)
READ2:
U$="OFF1"
#-------------------------------------------------------------------------
R1:
JUMPSRCHN(N$,"あります",R2) #メール未読があれば,READ000へ。
GOTO(READ000)
R2:
JUMPSRCHN(M$,"あります",U$) #会議室未読がなければ,U$へ。
#-------------------------------------------------------------------------
READ000:
PRINTCR("□未読状況を調査しています□")
LOGOPEN("TEMP") #会議室未読状況書き込み作業ログファイル作成。
SEND("B\R") #会議室未読状況取得コマンド。
CALL(LOOP0)
GETLOGD(I$) #I$=G:\WT\LOG\
CAT(I$,"TEMP.LOG") #I$=G:\WT\LOG\TEMP.LOG
LOGCLOSE #TEMP.LOG閉じる。
LOGOPEN("MAR")
FOPEN(I$) #作業ログファイル読みだしオープン。
FREAD(A$) #TEMP.LOGの一行目のBを捨てる。
READC: #作業ログファイル読みだしルーチン。
FREAD(A$,READG) #作業ログファイルから読み込み。
JUMPSRCHY(A$,"S)31",READDD) #(BBS)31は会議室数上限。
JUMPSRCHY(A$,"手紙",READF) #未読のメールがある場合。
JUMPSRCHN(A$,"未読数 0",READD)
#未読 0,がない場合(会議室未読がある場合)。
GOTO(READC)
READDD: #31番会議室未読有無確認。
JUMPSRCHN(A$,"未読数 0",READFF)
#未読 0,がない場合(会議室未読がある場合)。
GOTO(READG) #31番会議室未読がない場合は終了処理へ。
READD: #会議室未読がある場合。
LEFT(A$,"7") #作業ログファイルの一行を,左7バイト取り出し。
RIGHT(A$,"2") #取り出したものの,右2バイト取り出し。
DELSPACE(H$,A$) #取り出したものから空白を除去。
SEND(H$) #H$は会議室番号。
SEND("\R")
CALL(LOOP0)
SEND("/N\R") #会議室未読の処理。/ALLは使えない。
CALL(LOOP0)
F$="READC" #F$はSELECT_で使用する,移動先フラグ。
GOTO(SELECT_) #チャットサイン有無確認ループへ。
READF: #未読のメールがある場合。
SEND("M\R")
CALL(LOOP0)
SEND("/N\R") #未読処理コマンド。
CALL(LOOP0)
F$="READC" #F$はSELECT_で使用する,移動先フラグ。
GOTO(SELECT_) #チャットサイン有無確認ループへ。
READFF: #31番会議室に未読がある場合の処理。
SEND("31\R")
CALL(LOOP0)
SEND("/N\R") #会議室未読の処理。/ALLは使えない。
CALL(LOOP0)
F$="READG" #F$はSELECT_で使用する,移動先フラグ。
GOTO(SELECT_) #チャットサイン有無確認ループへ。
READG: #未読処理作業終了処理ルーチン。
FCLOSE
DELFILE(I$) #作業ログファイルの削除。
VSWITCH(R$) #CHATサイン有無判断ルーチン。
CASE("C")
CALL(CHAT)
R$=""
GOTO(U$) #U$は移動先フラグ。
ELSE
GOTO(U$)
END
#=========================================================================
SELECT_: #CHAT信号判断ルーチン。
VSWITCH(R$)
CASE("C")
CALL(CHAT)
R$=""
GOTO(F$)
ELSE
GOTO(F$)
END
#-------------------------------------------------------------------------
SELECT0:
H$="GAMEをします。 GAME内は,自由行動です。+未読ポインター移動を行います。"
I$="他にも色々できるよ。+未読情報を表示します。"
J$="ログアウトします。"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
PRINTCR(" MACRO STOP! SEE YOU AGAIN! (^o^)/゚")
EXIT
CASE("1")
GOTO(GAME)
CASE("2")
GOTO(ETC)
CASE("3")
GOTO(OFF1)
CASE("4")
GOTO(HAND)
CASE("5")
Y$="BST"
GOTO(ETC1)
ELSE
GOTO(SELECT0)
END
ETC:
H$="各種 RANK表示をします。+もっと,いろいろできるよ。"
I$="誰がアクセスしてるかな?+一行伝言デフォルト内容の確認をします。"
J$="今日はどんな日かな?+一行伝言をデフォルトで入力してログアウトします。"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
GOTO(SELECT0)
CASE("1")
GOTO(ETC01)
CASE("2")
Y$="LOG"
GOTO(ETC1)
CASE("3")
Y$="DAY"
GOTO(ETC1)
CASE("4")
GOTO(ETC2)
CASE("5")
GOTO(DEF)
CASE("6")
GOTO(OFF4)
ELSE
GOTO(ETC)
END
ETC01:
H$="所有GOLD RANKINGを表示します。+発言回数RANKINGを表示します。"
I$="書き込み率RANKINGを表示します。"
J$="アクセス回数RANKINGを表示します。"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
GOTO(ETC)
CASE("1")
Y$="GRNK"
GOTO(ETC1)
CASE("2")
Y$="RRNK"
GOTO(ETC1)
CASE("3")
Y$="ARNK"
GOTO(ETC1)
CASE("4")
Y$="WRNK"
GOTO(ETC1)
ELSE
GOTO(ETC01)
END
ETC2:
H$="50,000GOLD取得者を表示します。+規約等を読みます。"
I$="PROFIELを表示します。"
J$="自由行動します。"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
GOTO(SELECT0)
CASE("1")
Y$="KING"
GOTO(ETC1)
CASE("2")
Y$="PROF"
GOTO(PROF)
CASE("3")
GOTO(ETC4)
CASE("4")
GOTO(ETC3)
ELSE
GOTO(ETC2)
END
ETC3:
H$="規約を読みます。+SYSOPとチャットをします。抜ける時は「/E」を入れてね。"
I$="郵送規約を読みます。"
J$="会議室とボードチャットの一覧を見ます(MAP)。"
SMENU(H$,I$,J$)
VSWITCH(H$)
CASE("0")
GOTO(SELECT0)
CASE("1")
Y$="規約"
GOTO(ETC1)
CASE("2")
Y$="郵送"
GOTO(ETC1)
CASE("3")
Y$="MAP"
GOTO(ETC1)
CASE("4")
GOTO(CHATS)
ELSE
GOTO(ETC2)
END
#=========================================================================
HAND:
F$="SELECT0"
INPUT(H$,"ポインター移動をする会議室番号を入力して下さい:","705.60")
JUMPE(H$,"",SELECT_) #入力がない場合。
SEND(H$)
SEND("\R")
CALL(LOOP0)
DELAYM(500) #同期調整。
GETCRTS(A$,"2") #会議室移動確認。
JUMPSRCHY(A$,"◆",SELECT_)
INPUT(H$,"移動ポインター数を入力して下さい:","705.60")
JUMPE(H$,"",SELECT_) #入力がない場合。
SEND("RP ")
SEND(H$)
SEND("\R")
CALL(LOOP0)
DELAYM(500) #同期調整。
GOTO(SELECT_)
#=========================================================================
ETC4:
INPUT(H$,"コマンドを正確に入力して下さい:","705.60")
JUMPE(H$,"",SELECT0)
SEND(H$)
SEND("\R")
CALL(LOOP0)
F$="ETC2"
GOTO(SELECT_)
#=========================================================================
PRO: #MAR.PAD指定から。
JUMPE(A$,"",DAT1)
SEND("PROF ")
SEND(A$)
SEND("\R")
CALL(LOOP0)
GOTO(DAT_)
#-------------------------------------------------------------------------
PROF: #SELECTERから。
INPUT(H$,"ID or ハンドル名を正確に入力して下さい:","705.60")
JUMPE(H$,"",SELECT0) #ID等の指定がない場合。
CAT(Y$," ")
CAT(Y$,H$)
SEND(Y$)
SEND("\R")
CALL(LOOP0)
DELAYM(1500) #同期調整。
F$="SLECT0"
GOTO(SELECT_)
#=========================================================================
DEF:
PRINTCR("")
PRINTCR("一行伝言に設定されているのは----")
PRINTCR(X$)
PRINTCR("----です。")
F$="ETC"
GOTO(SELECT_) #プロンプト表示は待たない。
#=========================================================================
ETC1:
SEND(Y$)
SEND("\R")
CALL(LOOP0)
F$="SELECT0"
GOTO(SELECT_)
ETC01:
SEND(Y$)
SEND("\R")
CALL(LOOP0)
F$="ETC3"
GOTO(SELECT_)
#=========================================================================
GAME:
SEND("GAME\R")
F$="GAME0"
GAME0:
L$=")>"
CALL(LOOP1)
GOTO(SELECT0)
#=========================================================================
OFF1:
SEND("OFF\R")
L$="\013\010:"
F$="OFF2"
C$="/C\R"
CALL(LOOP1)
SEND("\R")
CALL(LOOP1)
OFF2:
INPUT(A$,"一行伝言を入力して下さい。",705.120)
CONVERT(OFF)
SEND(A$)
CONVERT(ON)
SEND("\R")
JUMPE(A$,"",OUT)
JUMPE(A$,"/E",OUT)
WAIT("\010:")
SEND("\R")
GOTO(OUT)
#-------------------------------------------------------------------------
OFF4:
SEND("OFF\R")
L$="\013\010:"
F$="OFF5"
C$="/C\R"
CALL(LOOP1)
SEND("\R")
CALL(LOOP1)
OFF5:
CONVERT(OFF)
SEND(X$)
CONVERT(ON)
SEND("\R")
JUMPE(X$,"/E",OUT)
WAIT("\010:")
SEND("\R")
GOTO(OUT)
#-------------------------------------------------------------------------
OUT:
WAIT("切断します-")
PRINTCR("")
PRINTCR("")
PRINTCR(" MACRO STOP! SEE YOU AGAIN! (^o^)/゚")
PRINTCR("")
PRINTCR(" また来てね! ")
LOGCLOSE
EXIT #マクロ終了。
#=========================================================================
LOOP0:
SWITCH
CASE("T{^。^`}ヨホホホ。")
GETCRTS(Z$,"0")
R$="C"
RETURN
CASE("+\013\010")
WAIT("",1,LOOP0)
RETURN
CASE("0\013\010")
WAIT("",1,LOOP0)
RETURN
CASE("い\013\010:")
WAIT(" ",1,LOOP0)
RETURN
CASE("\010:")
WAIT("",1,LOOP0)
RETURN
CASE("\010:")
WAIT("",1,LOOP0)
RETURN
CASE("名】:")
WAIT("",1,LOOP0)
RETURN
CASE(">")
GETCRTS(Z$,"0")
WAIT("",1,LOOP0)
RETURN
CASE("):")
WAIT("",1,LOOP0)
RETURN
CASE(":")
WAIT("",1,LOOP0)
RETURN
END
RETURN
#-------------------------------------------------------------------------
LOOP1:
SWITCH
CASE("\013\010:CHAT{^。^`}ヨホホホ。")
CALL(CHA)
CASE(":CHAT{^。^`}ヨホホホ。")
CALL(CHA)
CASE("e:CHAT{^。^`}ヨホホホ。")
CALL(CHA1)
CASE("T{^。^`}ヨホホホ。")
GETCRTS(Z$,"0")
CALL(CHAT)
CASE(L$)
GETCRTS(Z$,"0")
WAIT("",1,LOOP1)
RETURN
END
RETURN
#=========================================================================
CHA1:
SEND("0\R")
WAIT(")>")
CALL(CHAT)
RETURN
CHAT:
DELAYM(1000)
SEND(C$)
CALL(CHAT0)
RETURN
CHAT0:
WAIT("",1,CHAT0)
VCLEAR("A")
INPUT(A$,"チャットは楽しいね。",705.60)
IFE(A$,"")
CALL(CHATERR)
CONVERT(OFF)
SEND(A$)
CONVERT(ON)
SEND("\R")
IFE(A$,"/E")
RETURN
GOTO(CHAT0)
CHATERR:
SEND("自動運転中で,反応できないの。ごめんなさい。 m(_._)m\R")
CHATERR0:
WAIT("",1,CHATERR0)
A$="/E"
RETURN
CHATS:
WAIT("",1,CHATS)
SEND("C\R")
CHATS0:
WAIT("",1,CHATS0)
INPUT(R$,"チャットは楽しいね。",705.120)
CONVERT(OFF)
SEND(R$)
CONVERT(ON)
SEND("\R")
JUMPE(R$,"/E",CHATS1)
JUMPE(R$,"/e",CHATS1)
GOTO(CHATS0)
CHATS1:
WAIT("",1,CHATS1)
GOTO(SELECT0)
#=========================================================================
DO:
JUMPE(D$,"",DAT1)
SEND(D$)
SEND("\R")
CALL(LOOP0)
GOTO(DAT_)
#=========================================================================
KES: #自発言削除指定の場合。
JUMPE(A$,"",DAT_) #会議室等の指定がない場合。
PICKWORD(U$,A$,E$) #/で区切る。U$は会議室番号。
JUMPE(U$,"",DAT_) #会議室指定がない場合(//となっている)。
JUMPE(A$,"",DAT_) #発言番号指定がない場合。
JUMPE(U$,"1",DAT_) #1番会議室を指定した場合。
SEND(U$) #指定会議室への移動送信。
SEND("\R")
STIMEOUT(2)
SWITCH
CASE("◆") #会議室に入れない場合。
GOTO(ERR3)
END
CALL(LOOP0)
SEND("DEL ") #発言削除コマンド送信。
SEND(A$) #削除発言番号送信。
SEND("\R")
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(ERR3)
END
CALL(LOOP0)
SEND("1\R") #削除の確認。
VCLEAR("UH")
CALL(LOOP0)
GOTO(DAT_)
#=========================================================================
DL_: #DLリスト取得指定の場合。
JUMPE(A$,"",DAT1)
SEND("DL\R") #DLへ。
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(ERR3)
END
CALL(LOOP0)
SEND(A$) #DL番号送信。
SEND("\R")
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(ERR2) #DLを抜けてメインプロンプトへ戻る処理へ。
END
CALL(LOOP0)
SEND("1\R") #リスト取得選択。
SWI: #DLプロンプト判断ルーチン。
SWITCH
CASE("):")
WAIT("",1,SWI)
GOTO(TSE)
CASE("\010:")
WAIT("",1,SWI)
GOTO(ESE)
ELSE
GOTO(SWI)
END
ESE: #リストが数頁ある場合。
SEND("E\R") #表示終了送信。
CALL(LOOP0)
SEND("T\R") #DLを抜ける。
CALL(LOOP0)
GOTO(DAT_)
TSE: #リストが1頁分しかない場合。
SEND("T\R") #DLを抜ける。
CALL(LOOP0)
GOTO(DAT_)
#=========================================================================
DLN: #最新DLリスト取得指定の場合。
SEND("DL\R") #DLへ。
STIMEOUT(2)
SWITCH
CASE("◆")
GOTO(ERR3)
END
CALL(LOOP0)
SEND("N\R") #最新リスト取得コマンド送信。
CALL(LOOP0)
SEND("T\R") #DLを抜ける。
CALL(LOOP0)
GOTO(DAT_)
#=========================================================================
ERR2: #DLモードに入った後,指定番号DLに入れない場合。
CALL(LOOP0)
SEND("T\R") #メインプロンプトへ復帰。
CALL(LOOP0)
GETCRTS(Z$,"0")
GOTO(DAT1)
ERR3: #LOOP0の前の場合。
CALL(LOOP0)
GETCRTS(Z$,"0")
GOTO(DAT1)
#=========================================================================
RETRY:
PRINTCR("□この会議室には書き込めません。指定ファイルをリネームします□")
RCLOSE
A$=""
CAT(A$,"REN ",D$) #A$=REN G:\WT\UP_TXT\12_505.RES
CAT(A$," *.ERR") #A$=REN G:\WT\UP_TXT\12_505.RES *.ERR
CHILD(A$) #書き込みエラーファイルの拡張子をERRにリネーム。
DELAYM(1500) #同期調整。
VCLEAR("ALJF") #J$,L$は会議室番号,レス先番号等で使用。
GOTO(DAT__)
#=========================================================================